Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

ІНДЕКСНО

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
О
Факультет:
КН
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2008
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Бази даних

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ Національний університет «Львівська політехніка» Кафедра САПР Звіт Про виконання лабораторної роботи №3 З курсу: «Бази даних» Тема: ІНДЕКСНО-ПОСЛІДОВНИЙ МЕТОД ДОСТУПУ ДО ФАЙЛІВ НА ЗОВНІШНІХ ЗАПАМ’ЯТОВУЮЧИХ ПРИСТРОЯХ. Мета: Розглянути органiзацiю i ведення файлiв iндексно-послiдовного доступу; набути практичнi навички у програмуваннi алгоритмiв iндексно-послiдовного доступу до файлiв на зовнiшнiх запам'ятовуючих пристроях. Текст програми: #include <iostream.h> #include <conio.h> #include <string.h> #include <stdio.h> #include <math.h> #include <stdlib.h> #include <dir.h> #define blockCount 10 #define maxID 100 char *mainPath[blockCount]; char tempPath[] = "src.pdb"; char _template[]="tmp.pdb"; char dbDirectory[MAXDIR]="c:\\"; char indexPath[]="index.idb"; char keyTab = 1; FILE *mainFile = NULL, *temFile = NULL, *infoFile=NULL; int DBflag=0; class animalRecord {public: int ID; int Age; char Pet[40+2]; char ownerName[40+2]; char Illness[40+2]; int Price; char Notes[40+2]; int isSet; int errorcode; void readFromFile(FILE *CUR = NULL); void writeToFile(FILE *CUR = NULL); void goToKey(FILE *CUR = NULL); animalRecord();}; animalRecord::animalRecord() {ID = -1; Age = 0; strcpy (Pet,"NULL"); strcpy (ownerName,"NULL"); strcpy (Illness,"NULL"); Price = 0; strcpy (Notes,"NULL"); errorcode = isSet = 0;} void animalRecord::writeToFile(FILE* CUR) {if (CUR == NULL) return; fprintf(CUR,"%c\n%d\n%d\n%s\n%s\n%s\n%d\n%s\n",keyTab, this->ID, this->Age, this->Pet, this->ownerName, this->Illness, this->Price, this->Notes);CUR=NULL;} void animalRecord::readFromFile(FILE *CUR) {animalRecord buf=animalRecord(); int eofflag=0, l, read=0; char cbuf, key=0; buf.isSet=0; do {if(feof(CUR)) {eofflag=1;break;} fscanf(CUR,"%c",&key);} while(key!=keyTab); if(eofflag) {if(!read) {buf.errorcode=1; *this = buf; return;}} //Reading record -------------------------------------------------------------- fscanf(CUR,"\n%d\n",&buf.ID); fscanf(CUR,"%d\n",&buf.Age); for(l=0, fscanf(CUR,"%c",&cbuf);cbuf!='\n';l++) {buf.Pet[l]=cbuf; fscanf(CUR,"%c",&cbuf);} buf.Pet[l]='\0'; for(l=0, fscanf(CUR,"%c",&cbuf);cbuf!='\n';l++) {buf.ownerName[l]=cbuf; fscanf(CUR,"%c",&cbuf);} buf.ownerName[l]='\0'; for(l=0, fscanf(CUR,"%c",&cbuf);cbuf!='\n';l++) {buf.Illness[l]=cbuf; fscanf(CUR,"%c",&cbuf);} buf.Illness[l]='\0'; fscanf(CUR,"%d\n",&buf.Price); for(l=0, fscanf(CUR,"%c",&cbuf);cbuf!='\n';l++) {buf.Notes[l]=cbuf; fscanf(CUR,"%c",&cbuf);} buf.Notes[l]='\0'; buf.isSet=1; *this = buf;} void animalRecord::goToKey(FILE *CUR) {int i=0,a;float ad; char key; if((ftell(CUR))>0) fseek(CUR,-1,SEEK_CUR); else{return;} do {ad = ftell(CUR); fscanf(CUR,"%c",&key); fseek(CUR,ad,SEEK_SET); if(key=='\n') a=-2; else a=-1; fseek(CUR,a,SEEK_CUR); }while(key!=keyTab); fseek(CUR,1,SEEK_CUR);} //------------------------------------------------------------------------------ void SetIndexFile(); int ChangeDir(char[MAXDIR]); char* SetBlockName(int); void FileGenerator(); int reccmp(char str1[47], char str2[47], int count); void New(); void Open(); char* SetStr(int); animalRecord Set (animalRecord set = animalRecord () ); void Insert (animalRecord sav = animalRecord () ); void Delete (animalRecord Del = animalRecord () ); void Modify (); void Find (); void Print (); int main() {textmode(64); clrscr(); for(int i=0;i<blockCount;i++) if (!(mainPath[i] = (char*) malloc(15))) {exit(0);} FileGenerator(); do {cout<<"Main menu:"; cout<<"\n1. New base"<< "\n2. Open base"<< "\n3. Insert"<< "\n4. Delete"<< "\n5. Modify"<< "\n6. Find"<< "\n7. Print"<< "\n8. Quit program\n"<< "Your choise: "; switch(getch()) {case '1': clrscr();New(); break; ...
Антиботан аватар за замовчуванням

17.07.2020 10:07

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини